package de.rothbayern.android.ac.camera;

import java.io.IOException;

import android.content.Context;
import android.hardware.Camera;
import android.view.*;

class Preview extends SurfaceView implements SurfaceHolder.Callback {
	SurfaceHolder mHolder;
	Camera mCamera;
	Preview(Context context) {
	super(context);
	// Install a SurfaceHolder.Callback so we get notified when the
	// underlying surface is created and destroyed.
	mHolder = getHolder();
	mHolder.addCallback(this);
	mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
	}
	public void surfaceCreated(SurfaceHolder holder) {
	// The Surface has been created, acquire the camera and tell it where
	// to draw.
	mCamera = Camera.open();
	try {
		mCamera.setPreviewDisplay(holder);
	} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	}
	public void surfaceDestroyed(SurfaceHolder holder) {
	// Surface will be destroyed when we return, so stop the preview.
	// Because the CameraDevice object is not a shared resource, it's very
	// important to release it when the activity is paused.
	mCamera.stopPreview();
	mCamera = null;
	}
	public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
	// Now that the size is known, set up the camera parameters and begin
	// the preview.
	Camera.Parameters parameters = mCamera.getParameters();
	parameters.setPreviewSize(w, h);
	mCamera.setParameters(parameters);
	mCamera.startPreview();
	}
	}